home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / language / embedded / m68k / fbug68k.arc / READ.ME < prev    next >
Text File  |  1989-09-29  |  4KB  |  106 lines

  1.  
  2.  
  3.            ************* READ_ME ************** READ_ME **************
  4.  
  5. There are presently 2 versions of the monitor within this file.  The difference
  6. between the two is how the versions expect the I/O to be handled.  The routines 
  7. that handle I/O are getline.c and print.c.  There are 2 versions of each of 
  8. these routines in this directory.  The versions with the "unix" suffix are 
  9. designed to be used on a system which needs the putch() and getch() functions 
  10. called to handle I/O.  The versions with the "port" suffix are designed to be 
  11. used on systems where I/O is handled through a specific memory location (ie. the
  12. location of the DUART on the target system).  
  13.  
  14. The errata shown below from version 1.0 has been noted and corrected.
  15.  
  16.  
  17.  
  18.  
  19. ERRATA version 1.0 of the 68FBUG monitor:
  20.  
  21. 1.  The rd command, when printing out the SR, displays this register as a 32 
  22.     bit register.  Changing the "else if" statement on line 409 in the general.c
  23.     file from:
  24.  
  25.         OLD
  26.     409:    else if(reg[i].name[1] == 'S' && reg[i].name[2]=='R')
  27.  
  28.         NEW
  29.     409:    else if((reg[i].name[0] == 'S' && reg[i].name[1]=='R') ||
  30.     410:        (reg[i].name[1] == 'S' && reg[i].name[2]=='R')) 
  31.  
  32.     corrects this discrepancy.  If this change is not made then the lower 16bits
  33.     actually displayed for the SR register correspond with the actual contents
  34.     of the SR register.
  35.  
  36. 2.  If .bss ram space is not intialized to '0' then use of the 68030 version,
  37.     with NO coprocessor, of the monitor may crash (ie. continual "BUS ERROR" 
  38.     loops) as a result of using the rd command.  This problem stims from 
  39.     attempting to print the SR register in the printreg routine found in the 
  40.     general.c file. Line number 413 of this file should be removed.
  41.  
  42.         OLD
  43.     413:        i++;
  44.  
  45.         NEW
  46.     DELETED
  47.  
  48. 3.  The rm command, when printing out the SR, displays this register
  49.     as a 32 bit register.  Changing the "if" statement on line 527 in the
  50.     general.c file from:
  51.  
  52.         OLD
  53.     527:    if(reg[i].name[1] == 'S' && reg[i].name[2]=='R')
  54.  
  55.         NEW
  56.     527:    if((reg[i].name[0] == 'S' && reg[i].name[1]=='R') ||
  57.     528:        (reg[i].name[1] == 'S' && reg[i].name[2]=='R')) 
  58.  
  59. 4.  The rm command, when modifying a 16 bit register, allows these registers
  60.     to be modified to contain values larger than 16 bits.  Then displays these
  61.     values when executing either rm or rd commands.  Only the lower 16 bits
  62.     are correct.  Modifying the printunix.c and/or printport.c routines as shown
  63.     below corrects the display to only showing 16 bits.
  64.  
  65.     ADD before "switch(pch)" statement on line 52 in printunix.c
  66.     ADD before "switch(pch)" statement on line 47 in printport.c
  67.  
  68.              *pformat--;
  69.              pch = *pformat++;
  70.  
  71.     OLD lines 94-100 printunix.c
  72.     OLD lines 86-92  printport.c
  73.                                  pmaxwidth = pmaxwidth - pi - 1;
  74.                                  while (pmaxwidth > 0)
  75.                                  {
  76.                                          putch(TERMINAL,'0');
  77.                                          pmaxwidth--;
  78.                                  }
  79.                                  for (pi=0;pstr[pi] != ENDSTR;pi++)
  80.     NEW lines 96-115 printunix.c
  81.     NEW lines 88-105 printport.c
  82.  
  83.                  if(pmaxwidth != 0)
  84.                  {
  85.                                      pmaxwidth = pmaxwidth - pi - 1;
  86.                                         while (pmaxwidth > 0)
  87.                                         {
  88.                                                 putch(TERMINAL,'0');
  89.                                                 pmaxwidth--;
  90.                                         }
  91.                      pi = 0;
  92.                                         while (pmaxwidth < 0)
  93.                                       {
  94.                                                 pmaxwidth++;
  95.                          pi++;
  96.                                         }
  97.                  }
  98.                  else
  99.                      pi = 0;
  100.  
  101.                                  for (;pstr[pi] != ENDSTR;pi++)
  102.  
  103. 5.  Minor change in coldport/coldunix.c routines to relflect correct version
  104.     on powerup.
  105.  
  106.